package com.yang.auth.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.HashMap;
import java.util.Map;

/**
 * 登陆类型：
 *      1.验证码登录
 *      2.账号密码登录
 */
@Getter
@AllArgsConstructor
public enum LoginTypeEnum {
    // 验证码
    VERIFICATION_CODE(1),
    // 密码
    PASSWORD(2);

    private final Integer value;

    /**
     * 存储枚举的缓存
     */
    private static Map<Integer, LoginTypeEnum> cache;

    static {
        /**
         * 将所有的枚举缓存到Map中
         */
        cache = new HashMap<>();
        LoginTypeEnum[] loginTypeEnums = LoginTypeEnum.values();
        for (LoginTypeEnum loginType : loginTypeEnums) {
            cache.put(loginType.getValue(), loginType);
        }
    }

    /**
     * 获取对应类型的枚举
     * @param code
     * @return
     */
    public static LoginTypeEnum valueOf(Integer code) {
        return cache.get(code);
    }

}
